{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# NMF\n",
    "from sklearn.decomposition import NMF # 非负矩阵分解\n",
    "from sklearn.datasets._samples_generator import make_blobs # 生成样本数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\Users\\admin\\anaconda3\\envs\\ml\\lib\\site-packages\\sklearn\\decomposition\\_nmf.py:294: FutureWarning: The 'init' value, when 'init=None' and n_components is less than n_samples and n_features, will be changed from 'nndsvd' to 'nndsvda' in 1.1 (renaming of 0.26).\n",
      "  FutureWarning,\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "(array([[1.32733452, 0.24851947],\n",
       "        [1.05419651, 0.71087524],\n",
       "        [0.59405203, 0.92097206],\n",
       "        [0.92189812, 0.89505693],\n",
       "        [0.51908326, 0.93339857],\n",
       "        [0.51898305, 0.96197687],\n",
       "        [0.91587339, 0.86358586],\n",
       "        [1.46181881, 0.17457473],\n",
       "        [1.36260276, 0.17246941],\n",
       "        [0.61818896, 0.99674845],\n",
       "        [0.95990085, 0.69594026],\n",
       "        [0.80966863, 1.13724857],\n",
       "        [1.05053184, 0.77079399],\n",
       "        [1.39146333, 0.14504381],\n",
       "        [0.58936666, 0.87361366],\n",
       "        [1.25901035, 0.23332325],\n",
       "        [0.74355939, 0.67334321],\n",
       "        [0.6314286 , 1.11993451],\n",
       "        [0.70018417, 0.9139529 ],\n",
       "        [1.38507595, 0.32652616],\n",
       "        [0.49000249, 1.09267478],\n",
       "        [0.92361377, 0.63765489],\n",
       "        [0.85779261, 0.60631947],\n",
       "        [1.31805239, 0.37273451],\n",
       "        [0.81486334, 0.72423468],\n",
       "        [0.6334744 , 1.16169178],\n",
       "        [0.83842791, 0.87050825],\n",
       "        [1.34762572, 0.3402376 ],\n",
       "        [1.26502849, 0.13912609],\n",
       "        [0.5237129 , 0.992325  ],\n",
       "        [1.03300019, 0.57734758],\n",
       "        [1.44613593, 0.41795473],\n",
       "        [0.95585294, 0.57494385],\n",
       "        [0.69549998, 1.06003348],\n",
       "        [1.33560918, 0.09510453],\n",
       "        [0.56458989, 1.12975393],\n",
       "        [0.49447175, 1.03899574],\n",
       "        [1.41544211, 0.14871587],\n",
       "        [0.80935663, 0.75043256],\n",
       "        [1.47436397, 0.2083448 ],\n",
       "        [0.94859531, 0.77151096],\n",
       "        [1.24425786, 0.        ],\n",
       "        [1.22904605, 0.08991293],\n",
       "        [0.91006509, 1.04430803],\n",
       "        [0.70920792, 0.88246724],\n",
       "        [1.45786585, 0.16394998],\n",
       "        [1.29029981, 0.35620827],\n",
       "        [0.9232976 , 0.80759077],\n",
       "        [0.81887878, 0.69373332],\n",
       "        [0.77470034, 0.81647509],\n",
       "        [0.82019755, 0.84784679],\n",
       "        [1.36743781, 0.00448529],\n",
       "        [0.69779512, 1.09297312],\n",
       "        [0.56531884, 0.95302033],\n",
       "        [0.8920424 , 0.70308354],\n",
       "        [1.31021494, 0.14500457],\n",
       "        [1.33286051, 0.37231871],\n",
       "        [0.66729871, 1.06226624],\n",
       "        [0.92544508, 0.83338783],\n",
       "        [0.6144496 , 0.85006402],\n",
       "        [0.95553083, 0.72375547],\n",
       "        [1.34646992, 0.54484827],\n",
       "        [1.21165798, 0.06531285],\n",
       "        [0.87447971, 0.69201443],\n",
       "        [0.90280438, 0.58635175],\n",
       "        [0.98223057, 0.72958083],\n",
       "        [0.72646358, 0.9691967 ],\n",
       "        [1.21494077, 0.53313111],\n",
       "        [1.09399446, 0.34721834],\n",
       "        [0.6027002 , 0.76761777],\n",
       "        [0.86140873, 0.74884246],\n",
       "        [0.80144718, 1.00122296],\n",
       "        [1.34091345, 0.20337216],\n",
       "        [0.86455235, 0.78068288],\n",
       "        [0.58392523, 1.0437803 ],\n",
       "        [1.33395277, 0.44709137],\n",
       "        [0.64944435, 1.00862817],\n",
       "        [0.99411985, 0.66236728],\n",
       "        [1.32390997, 0.18832858],\n",
       "        [0.89323102, 0.69756482],\n",
       "        [1.37280926, 0.3424132 ],\n",
       "        [0.86392577, 0.74805199],\n",
       "        [1.30768236, 0.31891962],\n",
       "        [1.04056333, 0.55594706],\n",
       "        [0.6759869 , 0.94280724],\n",
       "        [0.54364488, 1.0647628 ],\n",
       "        [0.53416131, 1.15087721],\n",
       "        [0.66129079, 0.90726153],\n",
       "        [1.42339176, 0.09793968],\n",
       "        [0.97297219, 0.73092444],\n",
       "        [1.28506052, 0.25312119],\n",
       "        [0.61448785, 0.96146408],\n",
       "        [0.64342573, 0.92819844],\n",
       "        [0.87993576, 0.95171022],\n",
       "        [0.56253501, 0.97485145],\n",
       "        [1.4147146 , 0.00436099],\n",
       "        [1.26292942, 0.27467505],\n",
       "        [0.58139757, 1.03595766],\n",
       "        [0.58531981, 1.01795387],\n",
       "        [0.5230122 , 0.98694875]]),\n",
       " array([[7.30207774, 1.48971273, 7.62714084],\n",
       "        [0.        , 9.15842233, 0.61501096]]))"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "centers = [[5, 10, 5], [10, 4, 10], [6, 8, 8]] # 定义中心点\n",
    "V, _ = make_blobs(centers=centers) # 生成样本数据\n",
    "n_components = 2 # 潜在变量个数\n",
    "model = NMF(n_components=n_components) # 创建NMF模型\n",
    "model.fit(V) # 拟合模型\n",
    "W = model.transform(V) # 计算W矩阵\n",
    "H = model.components_ # 计算H矩阵\n",
    "W, H # 输出W和H矩阵"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(array([0.30991736, 0.3677686 , 0.41735536, ..., 0.15289256, 0.16115703,\n",
       "        0.1570248 ], dtype=float32),\n",
       " (400, 4096))"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 读取某个人脸图像\n",
    "from sklearn.datasets import fetch_olivetti_faces\n",
    "#演示第一章人脸图像\n",
    "faces = fetch_olivetti_faces()\n",
    "X = faces.data # 获取人脸图像数据\n",
    "# 以图像的形式展现第一章人脸图像\n",
    "import matplotlib.pyplot as plt\n",
    "plt.imshow(X[0].reshape(64, 64), cmap='gray') # 重塑图像为64x64\n",
    "plt.axis('off') # 关闭坐标轴\n",
    "X[0],X.shape # 输出第一张人脸图像和数据形状"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\Users\\admin\\anaconda3\\envs\\ml\\lib\\site-packages\\sklearn\\decomposition\\_nmf.py:294: FutureWarning: The 'init' value, when 'init=None' and n_components is less than n_samples and n_features, will be changed from 'nndsvd' to 'nndsvda' in 1.1 (renaming of 0.26).\n",
      "  FutureWarning,\n",
      "c:\\Users\\admin\\anaconda3\\envs\\ml\\lib\\site-packages\\sklearn\\decomposition\\_nmf.py:1641: ConvergenceWarning: Maximum number of iterations 200 reached. Increase it to improve convergence.\n",
      "  ConvergenceWarning,\n"
     ]
    }
   ],
   "source": [
    "#使用NMF对人脸图像进行分解\n",
    "n_components = 16 # 设置潜在变量个数\n",
    "nmf_model = NMF(n_components=n_components) # 创建NMF模型\n",
    "nmf_model.fit(X) # 拟合模型\n",
    "W_faces = nmf_model.transform(X) # 计算W矩阵\n",
    "H_faces = nmf_model.components_ # 计算H矩阵"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(400, 16)\n",
      "(16, 4096)\n"
     ]
    },
    {
     "data": {
      "image/png": "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7WtfK2mLXrGfx7C4uKgf//Ef13e+8526vfS2t71NktTf37/vx+D1EnLbbbftmzP9X//rfzWE9frrr7cxbGxs6GMf+5hOnz6t++67T5L07W9/W5IsWKbGAST2crYskUjYGLaTSqWy47N6+epXv2rz3dbWpmCzmddjsmVLS0u6++67lUgkzKHeb3tmN1v20pe+VKlUSvPz87ZnXvSiFxklazvna7+NwcsjjzwiaZMmdpDWQZLe9KY3aXFx0bIGB20v+efx+od68f2+lz7zmc/oy1/+sr785S+rXC4bre+mm25SIpFQMpk0WvT3YwzoUC9+DJeT7Z4HdkIsFttWXz6WMUiyMTze8tKXvlTNzc365Cc/WZf1+4M/+ANJm5nKsLKnzNkVV1yhT3/60/rJn/xJnThxQq997Wt13XXXaXV1Vd/4xjf0hS98QT/7sz8raTP7ceedd+qee+5RtVrV7bffrm9+85v64z/+Y73sZS+zQsvHS9LptP7P//k/uvPOO3XLLbfoK1/5iv7yL/9Sb3vb22xDvPjFL9Zzn/tc3XvvvXrkkUd07NgxdXd368yZM3ruc5+r3/iN36gbQ6lUumQMU1NTOn/+vI3h2muv1b333qsLFy6oqalJ99xzj6anp/Wtb33L6iz2OoZsNqtqtaorrrhCZ8+e1Stf+codx1AsFjU0NKSjR4/qvvvu0/z8vD71qU9J2qwR3O9jOHr0qJaXlxUEga666iq9/vWv1ze/+U0r5JS078dAc4Farabjx4/r1a9+te677z5z4G699VY94xnP2NdjePWrX113Hr7+9a/r85//vH3mTTfdpCuvvHJfj+G6667T+vq6NjY2dNVVV+knfuIn9O1vf9vW4fjx4+rp6dnXY+BMY6hf8YpX6Lvf/a6am5slbTaWePazn73vx8BeSqVSyuVy+rEf+7F9o1tf8IIXaGNjQ/F4XM95znP02te+Vtdee62uuuoqve1tb9M73vEO3XrrrSqXyxoZGVEmk9FnP/tZfec739HZs2clbQZXu9my973vfbr33nt1/vx5/cM//EPdGP76r/96x2e98847rSbm/vvvN1t2880363Of+5wGBgY0ODiohx9+eFdb9tBDD+nWW2/VPffco8985jOWEXjooYf21Z7Zqy37u7/7Oz3wwAO66aab9MEPflDj4+MqlUoaGxvT9773vX0/hnQ6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",
      "text/plain": [
       "<Figure size 1000x500 with 16 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 以图像的形式展现NMF分解结果\n",
    "import matplotlib.pyplot as plt\n",
    "plt.figure(figsize=(10, 5))\n",
    "for i in range(n_components):\n",
    "    plt.subplot(2, n_components, i + 1)\n",
    "    plt.imshow(H_faces[i].reshape(64, 64), cmap='gray')\n",
    "    plt.axis('off')\n",
    "    plt.title(f'Component {i + 1}')\n",
    "print(W_faces.shape)\n",
    "print(H_faces.shape) # 输出W和H矩阵的形状"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "ml",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
